/**
 * 
 */
package com.xb.cloud.product.merchant.service.client;

import java.math.BigDecimal;
import java.util.List;

import com.xb.cloud.product.merchant.service.client.bo.EndMerchantUserBo;
import com.xb.cloud.product.merchant.service.client.input.bo.ProductSkuInputBo;
import com.xb.cloud.product.merchant.service.client.input.bo.ProductSkuPicInputBo;
import com.xb.cloud.service.client.ServiceReturnInfo;

/**
 * @author kexue
 *
 */
public interface ProductSkuManageService {

	/**
	 * 获取仓库中sku列表
	 * 
	 * @param endMerchantUserBo
	 * @param isCanSale
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public ServiceReturnInfo getSkuListByIsCanSale(EndMerchantUserBo endMerchantUserBo, byte isCanSale, Integer pageNum, Integer pageSize );

	/**
	 * 上架、
	 * 
	 * @param endMerchantUserBo
	 * @return
	 */
	public ServiceReturnInfo skuUp(EndMerchantUserBo endMerchantUserBo, Long skuId);

	/**
	 * 下架、
	 * 
	 * @param endMerchantUserBo
	 * @return
	 */
	public ServiceReturnInfo skuDown(EndMerchantUserBo endMerchantUserBo, Long skuId);

	/**
	 * 修改市场价
	 * @param endMerchantUserBo
	 * @param skuId
	 * @param priceMarket
	 * @return
	 */
	public ServiceReturnInfo updatePrice(EndMerchantUserBo endMerchantUserBo, Long skuId, BigDecimal price);

	public ServiceReturnInfo skuDelete(EndMerchantUserBo endMerchantUserBo, Long skuId);
	
	/**
	 * 更新Sku (product库相关表的更新/插入在一个事务里面)
	 * 
	 * @param productId1
	 *            ： 单品id / 系列品的虚品id
	 * @param productId2
	 *            ： productType=0时候当前字段为空 / 系列品的系列产品对应的子品Id
	 * @param shopId:
	 *            店铺 Id
	 * @param productType
	 *            : productId1对应的产品类型 ， 0:主品 ; 1:虚品
	 * @param detailContent
	 *            : 图文详情的html
	 * @param skuNameCn
	 * @param skuTitleSub
	 * @param price
	 *            : 价格
	 * @param stock:库存
	 * @param groupIdList : 店铺内分组id列表
	 */
	public ServiceReturnInfo skuUpdate(EndMerchantUserBo endMerchantUserBo, Long productId,
			List<ProductSkuPicInputBo> skuPics, String detailContentJson,
			ProductSkuInputBo skuInput, BigDecimal priceSale,BigDecimal priceMarket);

}
